<?php
/**
 *
 *
 */
interface Yz_HTTP_Response_Interface
{

    const STATUS_OK                = 200;
    const STATUS_CREATED           = 201;
    const STATUS_ACCEPTED          = 202;
    const STATUS_NO_CONTENT        = 203;
    const STATUS_PARTIAL_CONTENT   = 206;
    const STATUS_MOVED_PERMANENTLY = 301;
    const STATUS_FOUND             = 302;
    const STATUS_SEE_OTHER         = 303;
    const STATUS_NOT_MODIFIED      = 304;
    const STATUS_TEMPORARY_REDIRECT= 307;
    const STATUS_BAD_REQUEST       = 400;
    const STATUS_UNAUTHORIZED      = 401;
    const STATUS_PAYMENT_REQUIRED  = 402;
    const STATUS_FORBIDDEN         = 403;
    const STATUS_NOT_FOUND         = 404;
    const STATUS_INTERNAL_SERVER_ERROR = 500;

    const HEADER_ALLOW             = 'Allow';
    const HEADER_CACHE_CONTROL     = 'Cache-Control';
    const HEADER_CONNECTION        = 'Connection';
    const HEADER_CONTENT_ENCODING  = '';
    const HEADER_CONTENT_LANGUAGE  = '';
    const HEADER_CONTENT_LENGTH    = '';
    const HEADER_CONTENT_LOCATION  = '';
    const HEADER_CONTENT_MD5       = '';
    const HEADER_CONTENT_RANGE     = '';
    const HEADER_CONTENT_TYPE      = 'Content-Type';
    const HEADER_DATE              = 'Date';
    const HEADER_ETAG              = 'ETag';
    const HEADER_EXPIRES           = 'Expires';
    const HEADER_LAST_MODIFIED     = 'Last-Modified';
    const HEADER_LOCATION          = 'Location';
    const HEADER_PRAGMA            = 'Pragma';
    const HEADER_RETRY_AFTER       = 'Retry-After';
    const HEADER_SERVER            = 'Server';
    const HEADER_TRANSFER_ENCODING = 'Transfer-Encoding';
    const HEADER_WWW_AUTHENTICATE  = 'WWW-Authenticate';


    public function setView( Yz_View_Interface $view );
    public function setBody( /*string*/ $body );
    public function setCacheable( /*bool*/ $cacheable );
    public function setHeader( $header, $value );
    public function setStatus( $status );
}
